#ifndef _FINGERPRINT_DEVICE_HEAD_H
#define _FINGERPRINT_DEVICE_HEAD_H
#include "Fingerprint-protocol.h"
#include "linux-uart.h"

class FingerPrintDevice
{
public:
    FingerPrintDevice(const string& device);
    bool sendPacket(const vector<uint8_t>& packet);
    bool recvPacket(vector<uint8_t>& packet);
    // 握手
    bool handshake(void);
    bool detectImage(void);
    // 生成特征码
    bool generateImageFeature(uint8_t bufferID);
    // 生成图像模版
    bool generateImageTemplate(void);
    // 存储模版
    bool storeImageTemplate(uint16_t pos);
    // 记录指纹
    bool recordFingerprint(uint16_t pos);
    // 搜索指纹
    bool searchFingerPrint(uint16_t& pos);
    // 验证指纹
    bool verfiyFingerPrint(uint16_t& pos);
    // 检测指纹是否触摸
    bool isTouchState(void);

    bool deleteFingerprint(const uint16_t pos);
    bool clearFingerprintLib(void);

private:
    LinuxUart uart;
};


#endif